﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ClienteWinMGI.Logica;
using ComunesMGI.DataTypes;
using ComunesMGI.Mensajes;


namespace ClienteWinMGI.Presentacion
{
    public partial class AsignarResponsableATarea : Form
    {
        private DataTarea _datosTarea;
        private int _idSistema;
        private int _idIncidente;
        private List<DataUsuario> _usuarios;
       


        public AsignarResponsableATarea(int idSistema, int idIncidente, DataTarea dataT)
        {
            this._idSistema = idSistema;
            this._idIncidente = idIncidente;
            this._datosTarea = dataT;
            InitializeComponent();
            CargarUsuarios();
           
        }



        private void CargarUsuarios()
        {
            IUsuarios iu = LogicaFactory.getInstance().getIUsuarios();
            _usuarios= iu.GetUsuarios();
            for (int i = 0; i < _usuarios.Count(); i++)
            {
                string nombreUsuario = _usuarios[i].Nombre;
                cboUsuario.Items.Add(nombreUsuario);
            }
            cboUsuario.SelectedIndex = -1;
        
        }

        private void cboCliente_SelectedIndexChanged(object sender, EventArgs e)
        {
           
        }

        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void btnAsignar_Click(object sender, EventArgs e)
        {
            
            try
            {
                IIncidentes iincidentes = LogicaFactory.getInstance().getIIncidentes();

                DataUsuario actualU = _usuarios.First(du => du.Nombre == cboUsuario.SelectedItem.ToString());

                bool isResponsable = iincidentes.AsignarResposable(_idSistema, _idIncidente, _datosTarea, actualU);
                if (isResponsable)
                {
                    Notificacion notificacion = new Notificacion("Asignacion exitosa", "La asignación fue exitosa", "Se ha asignado correctamente la tarea con identificador " + this._datosTarea.IdTarea + " al usuario " + actualU.Nombre + ".");
                    notificacion.ShowDialog();
                    this.Close();


                }
                else
                {
                    Error error = new Error("Error", "No se pudo llevar a cabo la asignacion", "No se pudo asignar la tarea con identificador " + this._datosTarea.IdTarea + " a al usuario " + actualU.Nombre + ".");
                    error.ShowDialog();
                }
                cboUsuario.SelectedItem = -1;




            }
            catch (Exception ex)
            {
                Error err = new Error("Error", "", ex.Message);
                err.ShowDialog();
            }
             
            
        }

        private void cboSistema_SelectedIndexChanged(object sender, EventArgs e)
        {
            
        }

        private void cboIncidente_SelectedIndexChanged(object sender, EventArgs e)
        {
           

        }

        private void lstTarea_SelectedIndexChanged(object sender, EventArgs e)
        {
           
        }

        private void btnSalir_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void AsignarResponsableATarea_Load(object sender, EventArgs e)
        {

        }

        private void lblIncidente_Click(object sender, EventArgs e)
        {

        }

        private void groupBox1_Enter(object sender, EventArgs e)
        {

        }

        private void lblUsuario_Click(object sender, EventArgs e)
        {

        }

        private void cboUsuario_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}
